package com.yss.reportworld.domain.rule;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.yss.common.core.annotation.EasyExcel;
import com.yss.common.core.annotation.ExcelValid;
import com.yss.common.core.utils.easyexecl.IntegerConverter;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 数据源配置_参数对象 rw_db_r_parameter
 *
 * @author yss
 * @date 2023-07-25
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("rw_db_r_parameter")
public class RParameter extends Model<RParameter> {
    public static final String SHEET_NAME = "参数列表";
    /**
     * ID
     */
    @ExcelIgnore
    @TableId("ID")
    private String id;

    @ExcelProperty({"参数列表", "分类"})
    @ExcelValid(message = "【参数列表】【参数列表】【分类】不能为空")
    private String typeName;

    @ExcelProperty({"参数列表", "分类标题"})
    @ExcelValid(message = "【参数列表】【参数列表】【分类标题】不能为空")
    private String typeTitle;
    /**
     * 数据类型
     */
    @ExcelProperty(value = {"参数列表", "类型"}, converter = IntegerConverter.class)
    @EasyExcel(readConverterExp = "0=字符串,1=整型数字,2=浮点型数字,3=日期,4=时间,5=日期+时间,6=对象,7=布尔,8=常量,9=引用表")
    @TableField("TYPES")
    @ExcelValid(message = "【参数列表】【参数列表】【类型】不能为空")
    private Integer types;

    /**
     * 参数名称
     */
    @ExcelProperty({"参数列表", "参数名称"})
    @TableField("NAME")
    @ExcelValid(message = "【参数列表】【参数列表】【参数名称】不能为空")
    private String name;

    /**
     * 标题
     */
    @ExcelProperty({"参数列表", "标题"})
    @TableField("TITLE")
    @ExcelValid(message = "【参数列表】【参数列表】【标题】不能为空")
    private String title;

    /**
     * 参数分类表ID_外键
     */
    @ExcelIgnore
    @TableField("PARAMETER_TYPE_ID")
    private String parameterTypeId;

    /**
     * 创建人
     */
    @ExcelIgnore
    @TableField("CREATE_USER")
    private String createUser;

    /**
     * 修改人
     */
    @ExcelIgnore
    @TableField("UPDATE_USER")
    private String updateUser;

    /**
     * 状态(逻辑删除状态)
     */
    @ExcelIgnore
    @TableField("STATUS")
    private Integer status;

    /**
     * 数据编码
     */
    @ExcelIgnore
    @TableField("RW_DB_ID")
    private String rwDbId;

}
